package com.xuecheng.api.search;

import com.xuecheng.api.content.model.qo.QueryCoursePubModel;
import com.xuecheng.api.search.model.dto.CoursePubIndexDTO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.common.domain.response.RestResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

@Api(value = "课程发布搜索服务API管理")
public interface CoursePubSearchApi {

    /**
     * 分页条件查询课程发布索引数据
     *
     * @param pageParams 分页参数
     * @param queryModel 查询参数
     * @return 分页对象包装课程发布索引数据
     */
    @ApiOperation("根据条件分页查询")
    PageVO<CoursePubIndexDTO> coursePubIndexByCondition(PageRequestParams pageParams, QueryCoursePubModel queryModel);

    /**
     * 根据课程发布ID查询课程发布索引数据
     *
     * @param coursePubId 课程发布ID
     * @return 课程发布索引数据
     */
    CoursePubIndexDTO getCoursePubById(Long coursePubId);

    /**
     * 根据课程发布ID查询课程发布索引数据（用于远程调用）
     *
     * @param coursePubId 课程发布ID
     * @return 课程发布索引数据
     */
    RestResponse<CoursePubIndexDTO> getCoursePubIndexById4s(Long coursePubId);
}